package com.zyf.chapter02.behavior.chain.framework.servlet;

/**
 * 模拟 servletFilter 的递归设计思路
 * @author yifeng
 */
public class HandlerB implements IHandler {
    @Override
    public void handler(HandlerChain chain) {
        boolean handled = false;
        // 优势展现，可以实现环绕逻辑处理，压栈时执行的逻辑
        System.out.println("HandlerB 压栈执行的逻辑");
        // ...
        if (!handled) {
            // 如果有敏感问题，则在此执行逻辑
        }
        // 递归调用下面的处理器
        chain.handle();
        /**
         * 类 {@link com.zyf.chapter02.behavior.chain.achieve.second.arr.HandlerB} 无法做到这样的环绕操作
         */
        System.out.println("HandlerB 弹栈执行的逻辑");
    }
}
